package edu.zut.packing;


/**
 * 表示实体信息的类，称为实体类
 * 通过属性表示（保存）数据，一般属性是不对外公开的，不让外界直接访问
 * 可能会封装一些特征，这些特征是不能被外界修改的,
 * 此时，我们会通过private修饰属性，将属性隐藏起来
 * 属性隐藏之后，外界不能直接访问了，但是我们还需要将数据展示给外界，此时就需要借助方法实现二次操作
 *
 * 属性的封装：通过private修饰属性，就属性的访问权私有化，对外通过属性的get/set方法让外界调用
 * getter/setter接口
 */
public class Student {

    private String number;
    private String name;
    private int age;
    private String school = "中原工学院";

    /**
     * 构造方法可不可以私有化
     * 一旦构造方法私有化，对象的创建外界不能直接调用
     */
    private Student(){
    }

    public static Student getInstance(){
        //.....添加业务逻辑
        Student student = new Student();
        return student;
    }

    public void setNumber(String number){
        //业务操作
        this.number = number;
    }

    public void setName(String name){
        this.name = name;
    }

    public void setAge(int age){
        this.age = age;
    }

    public String getNumber(){
        return number;
    }

    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }

    public String getSchool() {
        return school;
    }

    //封装一个方法用于展示数据
    public void show(){
        System.out.println("number:" + number + ",name:" + name + ",age:" + age + ",school:" + school);
    }

}
